/**
 * 最佳实践
 *   避免operator!=在 for 循环条件中进行数值比较。
 *   优先for loops于while loops存在明显循环变量的情况。
 *   优先while loops于for loops没有明显循环变量的情况。
 * 
 */

#include <iostream>
#include <cstdint> // for fixed-width integers

// returns the value base ^ exponent -- watch out for overflow!
std::int64_t pow(int base, int exponent)
{
    std::int64_t total{ 1 };

    for (int i{ 0 }; i < exponent; ++i)
        total *= base;

    return total;
}

int main()
{
    for (int i { 0 }; i < 10; ++i) // uses <, still terminates
    {
         std::cout << i;
         if (i == 9) ++i; // jump over value 10
    }

    for (int i { 0 }; i != 10; ++i) // uses !=, infinite loop
    {
         std::cout << i;
         if (i == 9) ++i; // jump over value 10
    }

    // 等价与 while
    for (;;) {

    }
}